35 [视频]实际项目中的性能优化:ingress-nginx中的几个PR解读

35 [视频]实际项目中的性能优化:ingress-nginx中的几个PR解读

你好,我是温铭。

今天的内容,我同样会以视频的形式来讲解。老规矩,在你进行视频学习之前,先问你这么几个问题:

  • 如何在开源项目中找到可能存在的性能问题?
  • 在 Github 上,如何与其他开发者正确地交流?

这几个问题,也是今天视频课要解决的核心内容,希望你可以先自己思考一下,并带着问题来学习今天的视频内容。

同时,我会给出相应的文字介绍,方便你在听完视频内容后,及时总结与复习。下面是今天这节课的文字介绍部分。

今日核心

ingress-nginx 是 k8s 官方的一个项目,主要使用Go、 Nginx 和 lua-nginx-module 来处理入口流量。

在今天的视频中,我会为你清楚介绍,如何运用我们刚刚学习的性能优化方面的知识,来发现开源项目的性能问题。要知道,在我们给开源项目贡献 PR 时,跑通测试案例集以及与项目维护者积极沟通,都是非常重要的。

下面是 ingress-nginx 中,和 OpenResty 性能相关的两个 PR:

从中你也可以发现,即使是资深的开发者,对 LuaJIT 相关的优化,可能也并不是很熟悉。一方面是因为,这两个 PR 涉及到的代码,并不会对整体系统造成严重的性能下降;另一个方面,这方面的优化知识,没有人系统地总结过,开发者即使想优化也找不到方向。

事实上,很多时候,我们站在代码可读性和可维护性的角度来看,可有可无的优化是不必要的,你只要去优化那些被频繁执行的代码片段就可以了,过度优化是万恶之源。

那么,学完今天这节课后,你是否可以在其他的开源项目中,找到类似的性能优化点呢?

课件参考

今天的课件已经上传到了我的GitHub上,你可以自己下载学习。

链接如下:https://github.com/iresty/geektime-slides

如果有不清楚的地方,你可以在留言区提问,另也可以在留言区分享你的学习心得。期待与你的对话,也欢迎你把这篇文章分享给你的同事、朋友,我们一起交流、一起进步。